Discovering alternative user experiences for websites

ABSTRACT

The present invention extends to methods, systems, and computer program products for discovering alternative user experiences for Websites. Embodiments of the invention permit a user to navigate to a Web page that has an alternative application for a Web site. In response to a Web browser detecting the alternative application a user-interface control at the Web browser can be activated. A user can then select the user-interface control to install the alternative application in am alternative application control center. Through the alternative application control center, a user activates alternative applications to interact with Web sites having alternative user experiences.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/200,167, entitled “DISCOVERING ALTERNATIVE USER EXPERIENCES FORWEBSITES”, filed Aug. 28, 2008, which is herein incorporated byreference in its entirety.

BACKGROUND 1. Background and Relevant Art

Computer systems and related technology affect many aspects of society.Indeed, the computer system's ability to process information hastransformed the way we live and work. Computer systems now commonlyperform a host of tasks (e.g., word processing, scheduling, accounting,etc.) that prior to the advent of the computer system were performedmanually. More recently, computer systems have been coupled to oneanother and to other electronic devices to form both wired and wirelesscomputer networks over which the computer systems and other electronicdevices can transfer electronic data. Accordingly, the performance ofmany computing tasks are distributed across a number of differentcomputer systems and/or a number of different computing environments.

For example, on the Internet, computer systems often operate in aclient/server arrangement. One computer system including a Web browserrequests data from another computer system including a Web server.Communication between the Web browser and Web server is typicallyfacilitated using the Hypertext Transfer Protocol (“HTTP”), which is acommunications protocol for the transfer of information on the Internetand the World Wide Web (“WWW”). HTTP is a request/response (orsynchronous) protocol. A Web browser requests information by submittinga Uniform Resource Locator (“URL”) and a Website identified by the URLreturns content (typically Hypertext Markup Language (“HTML”)) to theWeb browser. The Web browser then interprets the content forpresentation, such as, for example, through video and/or audio outputdevices.

Typical Web experiences are advantageous in that any computer systemwith a properly configured Web browser can access content from a Website. That is, a Web browser essentially functions as a thin client toprovide a small number of well-defined mechanisms for accessing andpresenting content. A Web server, in response to a Web browser request,does virtually all of the processing to get data in an appropriateformat (e.g., HTML) for presentation at a Web browser.

Unfortunately, this client/server arrangement also has a number ofdisadvantages. For example, all interaction with an application isrequired to pass through a Web server. As a result, data (e.g., a URL)is sent to the server, the server responds, and other data (e.g., a Webpage) is reloaded at a Web browser. Thus, typical Web browser operationcauses a synchronous (and sometimes slow) loop for user interactions,for example, limiting when Web site content can be presented.

Further, a Web browser's small number of well-defined mechanisms foraccessing and presenting content limits how and what types of contentcan be presented. For example, most Web browsers are not nativelyconfigured to present anything other than HTML data. The use of scriptscan enhance presentation abilities to of a Web browser to some extent.However, data presentation still occurs within the Web browser and islimited to the Web browser environment.

A variety of applications often referred to as Rich InternetApplications (“RIAs”), can provide alternative experiences with expandedor enhanced capabilities for accessing and presenting Internet-basedcontent (sometimes outside of a Web browser). RIAs utilize anintermediate software layer, sometimes referred to as a client engine,between a Web browser and Web server to circumvent Web browserlimitations. A RIA can be programmed to perform virtually anyapplication function a designer believes will enhance some aspect of auser interface or improve its responsiveness when handling various userinteractions (e.g., as compared to a standard Web browserimplementation). For example, RIAs can provide benefits such as expandeduser-interface behaviors not obtainable via HTML, increasedresponsiveness, client/server workload balancing, asynchronouscommunication (i.e., communication can occur without a user triggering aresponse/reply), and network efficiency.

RIAs can be executable (e.g., .exe) files, installation packages (e.g.,.msi), or ZIP file installation packages. Unfortunately, gaining accessto or even becoming aware of RIAs can vary between different Web sites.For example, a user typically has to read some Website or applicationspecific HTML user-interface of an application to identify a link to anRIA. The use then clicks a specific button or link on the HTML page totrigger downloading and/or installing of an RIA.

BRIEF SUMMARY

The present invention extends to methods, systems, and computer programproducts for discovering alternative user experiences for Websites. AWeb browser submits a request for content to a Web site. The Web browserreceives responsive content responsive to the request from the Web site.The Web browser determines that the responsive content includes a linkto an application manifest. The application manifest lists one or morealternative applications configured to access content from the Web site.

The Web browser indicates (e.g., through user-interface elements) thatthe Web site includes alternative application experiences. Theindication is presented in response to determining that the responsivecontent includes the link to the application manifest. The Web browserreceives a user indication of a user desire to retain the alternativeapplication experiences listed in the application manifest. The Webbrowser downloads components associated with the alternative applicationexperiences to the computer system in response to the user indication.

The Web browser caches the downloaded components at the computer systemto retain the alternative application experiences for subsequent use.The Web browser indicates that the alternative user experiences areavailable through an alternative application center. The alternativeapplication center provides a common location for accessing alternativeapplication experiences for different Web sites.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Additional features and advantages of the invention will be set forth inthe description which follows, and in part will be obvious from thedescription, or may be learned by the practice of the invention. Thefeatures and advantages of the invention may be realized and obtained bymeans of the instruments and combinations particularly pointed out inthe appended claims. These and other features of the present inventionwill become more fully apparent from the following description andappended claims, or may be learned by the practice of the invention asset forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the invention can be obtained, a moreparticular description of the invention briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only typical embodiments of the invention and are not thereforeto be considered to be limiting of its scope, the invention will bedescribed and explained with additional specificity and detail throughthe use of the accompanying drawings in which:

FIG. 1A illustrates an example computer architecture that facilitatesdiscovering alternative user experiences for Websites.

FIG. 1B illustrates an example computer architecture that facilitatesactivating an alternative user experience for a Website.

FIG. 2 illustrates a flow chart of an example method for discoveringalternative user experiences for Websites.

FIG. 3 illustrates a portion of a Web browser user-interface for savingalternative user experiences for Web sites.

FIGS. 4A and 4B illustrate a portion of a user-interface for accessingand activating an alternative user experience for a Web site.

DETAILED DESCRIPTION

The present invention extends to methods, systems, and computer programproducts for discovering alternative user experiences for Websites. AWeb browser submits a request for content to a Web site. The Web browserreceives responsive content responsive to the request from the Web site.The Web browser determines that the responsive content includes a linkto an application manifest. The application manifest lists one or morealternative applications configured to access content from the Web site.

The Web browser indicates (e.g., through user-interface elements) thatthe Web site includes alternative application experiences. Theindication is presented in response to determining that the responsivecontent includes the link to the application manifest. The Web browserreceives a user indication of a user desire to retain the alternativeapplication experiences listed in the application manifest. The Webbrowser downloads components associated with the alternative applicationexperiences to the computer system in response to the user indication.

The Web browser caches the downloaded components at the computer systemto retain the alternative application experiences for subsequent use.The Web browser indicates that the alternative user experiences areavailable through an alternative application center. The alternativeapplication center provides a common location for accessing alternativeapplication experiences for different Web sites.

Embodiments of the present invention may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, asdiscussed in greater detail below. Embodiments within the scope of thepresent invention also include physical and other computer-readablemedia for carrying or storing computer-executable instructions and/ordata structures. Such computer-readable media can be any available mediathat can be accessed by a general purpose or special purpose computersystem. Computer-readable media that store computer-executableinstructions are physical storage media. Computer-readable media thatcarry computer-executable instructions are transmission media. Thus, byway of example, and not limitation, embodiments of the invention cancomprise at least two distinctly different kinds of computer-readablemedia: physical storage media and transmission media.

Physical storage media includes RAM, ROM, EEPROM, CD-ROM or otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry or desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media to physicalstorage media (or vice versa). For example, computer-executableinstructions or data structures received over a network or data link canbe buffered in RAM within a network interface module (e.g., a “NIC”),and then eventually transferred to computer system RAM and/or to lessvolatile physical storage media at a computer system. Thus, it should beunderstood that physical storage media can be included in computersystem components that also (or even primarily) utilize transmissionmedia.

Computer-executable instructions comprise, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. The computer executable instructions may be, forexample, binaries, intermediate format instructions such as assemblylanguage, or even source code. Although the subject matter has beendescribed in language specific to structural features and/ormethodological acts, it is to be understood that the subject matterdefined in the appended claims is not necessarily limited to thedescribed features or acts described above. Rather, the describedfeatures and acts are disclosed as example forms of implementing theclaims.

Those skilled in the art will appreciate that the invention may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, pagers, routers, switches, and the like. The invention may also bepracticed in distributed system environments where local and remotecomputer systems, which are linked (either by hardwired data links,wireless data links, or by a combination of hardwired and wireless datalinks) through a network, both perform tasks. In a distributed systemenvironment, program modules may be located in both local and remotememory storage devices.

FIG. 1A illustrates an example computer architecture 100 thatfacilitates discovering alternative user experiences for Websites.Referring to FIG. 1A, computer architecture 100 includes computer system101 and computer system 102. Each of the depicted computer systems isconnected to one another over (or is part of) a network, such as, forexample, a Local Area Network (“LAN”), a Wide Area Network (“WAN”), andeven the Internet. Accordingly, each of the depicted computer systems aswell as any other connected computer systems and their components, cancreate message related data and exchange message related data (e.g.,Internet Protocol (“IP”) datagrams and other higher layer protocols thatutilize IP datagrams, such as, Transmission Control Protocol (“TCP”),Hypertext Transfer Protocol (“HTTP”), Simple Mail Transfer Protocol(“SMTP”), etc.) over the network.

Computer system 101 includes Web browser 102, alternative applicationcenter 104, and alternative application cache 106. Generally, Webbrowser 102 is configured to interact with Web sites to send Web-baseddata to and receive Web-based data from Web sites (e.g., in HTTPmessages, such as, for example, HTTP GET, HTTP HEAD, HTTP POST, HTTPPUT, etc.) and to present Web-based data through a user-interface. Webbrowser 102 also includes sticky user-interface control 103. Stickyuser-interface control 103 can activate (or “light up”) when a receivedmessage indicates that a Web site has alternative user experiences. Auser can then select sticky user-interface control 103 to save or “makesticky” alternative user experiences for Web sites, potentiallyfacilitating use of alternative user experiences when off line.

Alternative application center 104 provides a user-interface foraccessing safe alternative user experiences. Alternative applicationcache 106 is configured to store data for alternative user experiences.When an alternative user experience is saved, data for the alternativeuser experience can be downloaded to computer system 101 and stored inalternative application cache 106. Alternative application center 104can visual present (e.g., as icons) alternative user experiences storedin alternative application cached 106 to a user. A user can select analternative user experience from the list to active the alternative userexperience (either acting with the alternative user experience directlyor through alternative application center 104).

Computer system 111 includes Web server 112. Generally, Web server 112is configured to manage content for one or more Websites. Web server 112can interact with Web browsers and alternative applications to sendWeb-based data to and receive Web-based data from Web browsers andalternative applications (e.g., in HTTP messages including HTML data).Computer system can return Web-based data from storage 113 in responseto data requests received at Web server 112. Responses to data requestscan include content from content 114 and/or links to alternative userexperiences in alternative applications 116. Web server 112 can includelinks to any alternative user experiences when returning Web-based datato a Web browser. For example, Web server 112 can include a link elementin an HTML header of a HTML message. The link element can link to data(e.g., in alternative applications 116) for activating alternative userexperiences provided by Web server 112.

A Web browser, such as, for example, Web browser 102, can activate auser-interface control, such as, for example, sticky user-interfacecontrol 103, in response to detecting a link element to an alternativeuser experience in other received data, such as, for example, in an HTMLheader.

FIG. 2 illustrates a flow chart of an example method 200 for discoveringalternative user experiences for Websites. The method 200 will bedescribed with respect to the components and data of computerarchitecture 100.

Method 200 includes an act of submitting a request for content to a Website (act 201). For example, Web browser 102 can submit request 121(e.g., an HTTP GET containing a URL for Web server 112) to Web server112. Method 200 includes an act of receiving responsive contentresponsive to the request from the Web site (act 202). For example, Webbrowser 102 can receive response 122 responsive to request 121.

As depicted, response 122 includes header 123 and body 126. Header 123and body 126 can be the header and body of an HTML message respectively.Body 126 can contain content responsive to request 121. Generally,header 126 can contain information about response 122 including title,keywords, and other information that is not necessarily consideredcontent. As depicted, header 126 also includes manifest link 124. Webserver 112 can embed manifest link 124 in header 123 prior to sendingresponse 122.

Manifest link 124 can be of the format:

<head> <link rel=“alternate” type=“application/localria”href=“local.xml” title=“Applications”/> </head>

The link element includes attribute/value pairs conveying relationshipinformation for accessing an alternative user experience for accessingcontent 114. The rel=“alternate” attribute/value pair describes therelationship from body 126 to “local.xml” (i.e., the anchor specified inthe href attribute) and designates local.xml as a substitute version ofbody 126. The type=“application/localria” attribute/value pair gives anadvisory hint that the content type of the content available at the linktarget address (i.e., for the substitute version of response 122) isRich Internet Application (RIA) typed content. The“application/localria” type can be managed between Web browser 102 andWeb server 112 and/or can be registered as a content type, such as, forexample, a Mime Type, for expanded use. The hrer=“local.xml”attribute/value pair specifies the location of alternative applicationmanifest 128 defining a link between response 122 and alternativeapplication manifest 128.

Generally, a title attribute can be used to provide advisory informationabout the link element. The value of the title attribute can provided asa user tool tip at a Web browser. Thus, the title=“Applications”attribute/value pair indicates that the nature of manifest link 124 isrelated to “Applications”. Web browser 102 can display the word“Applications” when hovering over a user-interface element presented aspart of body 126.

Method 200 includes an act of determining that the responsive contentincludes a link to an application manifest, the application manifestlisting one or more alternative applications configured to accesscontent from the Web site (act 203). For example, Web browser 102 candetermine that response 122 includes manifest link 124. Manifest link124 can link to a portion of alternative applications 116 (e.g.,“local.xml”) that lists one or more alternative applications configuredto access content from Web server 112. Method 200 includes an act ofindicating at the Web browser that the Web site includes alternativeapplication experiences in response to determining that the responsivecontent includes the link to the application manifest. For example, Webserver 102 can active or “light up” sticky user-interface control 103 inresponse to determining that response 122 includes manifest link 124.

Referring now to FIG. 3, FIG. 3 depicts a portion of a Web browseruser-interface 300. Web browser user-interface 300 can facilitate savingalternative user experiences for Web sites. The functionality of Webbrowser user-interface 300 can be provided at Web browser 102. Asdepicted, Web browser user-interface 300 includes address field 301(e.g., for submitting URLs), search field 306 for searching receivedcontent, home page control 302 for returning to a designated home page,print control 304 for printing received content, RSS control 303 foractivating RSS formatted feeds (e.g., data oftype=“application/rss+xml”). Web browser user-interface 300 can alsoinclude sticky user-interface control 103 for making an alternative userexperiences (e.g., RIAs) sticky at computer system 101.

Method 200 includes an act of receiving a user indication of a userdesire to retain the alternative application experiences listed in theapplication manifest (act 204). For example, Web browser 102 can receiveuser-input 107 selecting sticky user-interface control 103.

Method 200 includes an act of downloading components associated with thealternative application experiences to the computer system in responseto the user indication (act 205). For example, selection of stickyuser-interface control 103 can cause Web browser 102 to utilize manifestlink 124 to send alternative application request 127 to Web server 112.Alternative application request 127 can be a request for a portion ofalternative applications 116, such as, for example, “local.xml”. Inresponse to receiving alternative application request 127, Web server112 can pull alternative application manifest 128 (e.g, “local.xml”)from alternative applications 116 and provide alternative applicationmanifest 128 to Web browser 102.

In some embodiments, an alternative application is made sticky in analternative application center by caching the application userexperience (XAML, Image, Media), code DLLs and the necessary applicationreference data. The application can be packaged using a simple ZIP likefile format with simple “sticky” manifest. Thus, alternative applicationmanifest 128 can be of the format:

<?xml version=“1.0” encoding=“utf-8” ?> <application><description>MyTV</description> <version>1.0.0.0</version><publisher>Timbuktourist</publisher> <icon>favicon.ico</icon><manifestOrigin>http://example.com/Local.xml</manifestOrigin> <hosts><!--- support multiple user experiences --> <!--- ability to inline info--> <host type=“ria-local”> <icon>favicon.ico</icon> <resources><resource Source=“ClientBin/TVSticky.xap”/> </resources> <startup><param>...</param> <param>...</param> <param>...</param><param>...</param> </startup> <resourceUpdatedSchedule frequency=“daily”time=“2:00AM” /> <initialQuota>2048KB″</initialQuota> </host> <!---integrate with existing installers --> <host type=“clickonce”><resources> <resource Source=“TVSticky.application”/> </resources></host> <host type=“ria-device”>  ... </host> <hosttype=“gadget-sidebar”> ... </host> <host type=“gadget-live”>  ...</host> <host type=“gadget-w3c”>  ... </host> </hosts> </application>

Within alternative application manifest 128, application description(“MyTV”) refers to the user friendly description of the alternativeapplications. Application publisher (“Timbuktourist”) refers to thepublisher of the alternative applications. Application icon(“favicon.ico”) refers to the visual image for the alternativeapplications.

The manifest also includes multiple hosts sections. Each host sectionrepresents an alternative application including an application type,such as, for example, ria-local, clickonce, ria-device, gadget-sidebar,gadget-list, gadget-w3C, etc. Within each hosts section, a list ofapplication resources (e.g., “ClientBin.TVSticky.xap”,TVSticky.application”, etc.) that should be synchronized/downloaded as aconsistent unit are included. The resources can be identified using asimple relative URI. The default resource is the application ZIP file.

Method 200 includes an act of caching the downloaded components at thecomputer system to retain the alternative application experiences forsubsequent use (act 206). For example, computer system 101 can cachecomponents identified in alternative application manifest 128 (and/orprovided by Web server 112) in alternative application cache 106. Cachedcomponents can include resources as well as configuration informationindicated in alternative application manifest 128. These components canbe grouped together and stored as application data 141.

In response to receiving alternative application manifest 128, computersystem 101 may request further components from Web server 112 (e.g.,using URLs contained in alternative application manifest 128). Forexample, computer system 101 can send component request 129 to Web serer112. In response to component request 129, Web server 112 can identifyalternative application components 131 as relevant to the activation anduse of alternative applications in alternative application manifest 128.Web server 112 can provide alternative application components 131 tocomputer system 101 for caching. These components can be grouped intoapplication data 141 for storage in alternative application cache 106.

Method 200 includes an act of indicating that the alternative userexperiences are available through an alternative application center atthe computer system, the alternative application center providing acommon location for accessing alternative application experiences fordifferent Web sites (act 207). For example, the availability ofalternative user experiences for accessing content 114 can be indicatedthrough alternative application center 104.

FIGS. 4A and 4B illustrate a portion of a user-interface 400 foraccessing and activating an alternative user experience for a Web site.Referring now to FIG. 4A, alternative application control center 104 canbe represented as a user-interface control in user-interface 400.Referring now to FIG. 4B, selection of the user-interface control cancause a listing of available alternative user experiences cached inalternative application cache 106 to be presented.

Thus, with a simple gesture a user can choose to make a RIA have a“sticky presence” on their machine. Sticky in the sense the applicationcode and data resources for activating the application are locallycached. A sticky presence RIA is an alternative application that mayreuse many of the code and UI assets of the in browser RIA.

Accordingly, embodiments of the invention permit a uses to navigate to aWeb page that has an Alternative Application or “Sticky” RIA (e.g., an.EXE application, .MSI installation package, or ZIP file installationpackage) for the web site. In response to a Web browser detecting thealternative application or “Sticky” RIA, a “Make Sticky” button in thebrowser toolbar can be activated. A user can then click on the buttonand may be asked to confirm their action. Upon confirmation (whenpresented), the Alternative Application or “Sticky” RIA can be installedto the RIA Center.

Further, a Web developer can customize the user experience of making analternative application “sticky”. For example, a Web devloper can add auser-interface control, such as, for example, a button to theirapplication. When a user selected the button a LocalApplication.InstallAPI can be called, passing a URL to the sticky manfiest. Additionally,when a Web developer provides a <link> element in the <head> of the HTMLweb page, the user can drag and drop the web page (from address bar) tothe RIA Center.

Advantageously, using any of these mechanisms, the user gets to decidewhen to take the action to make the RIA sticky. Further, once analternative application is cached, the application's resources and dataare automatically updated in the background so that a user has access toupdated user-interface experiences and data. For example, Web server 112can update application data 141 when communication with computer system101 is detected.

FIG. 1B illustrates a portion of computer architecture 100 thatfacilitates activating an alternative user experience for a Website. Asdepicted, FIG. 1B includes computer system 101 and computer system 111.In response to user-input 147 (input selecting an alternativeapplication for activation) alternative application control center 104loads cached data 141 from alternative application cache 106.Alternative application control center 104 can then process theapplication data 141 to activate alternative application 142.

Alternative application 142 can request Web-based data from Web server112. For example, Alternative application 142 can send request 151 toWeb server 112. Request 151 can be a request for a portion of content114 (e.g., the content included in body 126 or some other Web-baseddata). In response to a request, Web server 112 can return Web-baseddata to alternative application 142. For example, Web server 112 canreturn content 164 to alternative application 142. Alternativeapplication 142 can present content 164 at a user-interface.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

What is claimed:
 1. A method, comprising: using an application at a computer system to access a portion of content from a Web site; determining that the accessed portion of content identifies an alternate application for accessing content from the Web site, the alternate application providing an alternative user experience for accessing content from the Web site; receiving user input at the computer system indicating a desire to retain the alternate application; downloading components associated with the alternate application to the computer system in response to the received user input; storing the downloaded components at the computer system to retain the alternate application for subsequent use in accessing content from the Web site; and indicating that the alternate application is available at the computer system to access content from the Web site.
 2. The method as recited in claim 1, further comprising: receiving a user selection of the alternate application; activating the alternate application for use from the stored components; and providing an alternative user experience for content from the Web site, including: the alternate application submitting a request for content to the Web site; the alternate application receiving a second portion of content back from the Web site; and the alternate application presenting the received content.
 3. The method as recited in claim 1, wherein determining that the accessed portion of content identifies an alternate application for accessing content from the Web site comprises determining that links to the alternate application are contained in an HTML header.
 4. The method as recited in claim 1, wherein downloading components associated with the alternate application to the computer system comprises downloading an application manifest.
 5. The method as recited in claim 1, wherein indicating that the alternate application is available at the computer system to access content from the Web site comprises lighting up a user-interface control of the application.
 6. The method as recited in claim 1, further comprising updating the downloaded components subsequent to storing the downloaded components to make an updated version of the alternate application available at the alternative application center.
 7. A mobile device including one or more processors and system memory, the mobile device having stored computer executable instructions that when executed by the mobile device perform operations comprising: using an application to access a portion of content from the Web site; determining that the accessed portion of content identifies an alternate application for accessing content from the Web site, the alternate application providing an alternative user experience for accessing content from the Web site; receiving user input indicating a desire to retain the alternate application; downloading components associated with the alternate application to the mobile device in response to the received user input; storing the downloaded components at the mobile device to retain the alternate application for subsequent use in accessing content from the Web site; and indicating that the alternate application is available at the mobile device to access content from the Web site, the alternate application indicated in an alternative application center that provides a common location for accessing alternative user experiences for different Web sites.
 8. The mobile device as recited in claim 7, the mobile device having computer executable instructions that when executed by the mobile device perform operations further comprising: receiving a user selection of the alternate application; activating the alternate application for use from the stored components; and providing an alternative user experience for content from the Web site, including: the alternate application submitting a request for content to the Web site; the alternate application receiving a second portion of content back from the Web site; and the alternate application presenting the received content.
 9. The mobile device as recited in claim 7, wherein using the application to access a portion of content from the Web site comprises accessing an HTML document, the HTML document including a header and a body, the header containing links to the alternate application.
 10. The mobile device as recited in claim 7, wherein determining that the accessed portion of content identifies the alternate application for accessing content from the Web site comprises determining that links to the alternate application are contained in an HTML header.
 11. The mobile device as recited in claim 10, wherein determining that links to the alternate application are contained in an HTML header comprises determining that URLs are contained in the HTML header.
 12. The mobile device as recited in claim 11, wherein downloading components associated with the alternate application to the mobile device comprises submitting a URL to the Web site.
 13. The mobile device as recited in claim 7, wherein downloading components associated with the alternate application to the mobile device comprises downloading an application manifest.
 14. The mobile device as recited in claim 7, wherein indicating that the alternate application is available at the mobile device to access content from the Web site comprises lighting up a user-interface control of the application.
 15. The mobile device as recited in claim 7, the mobile device having computer executable instructions that when executed by the mobile device perform operations further comprising updating the downloaded components subsequent to storing the downloaded components to make an updated version of the alternate application available at the alternative application center.
 16. A computer system including one or more processors and system memory having stored computer executable instructions that when executed by the computer system perform operations comprising: consume a portion of content from the Web site by the computer system; determining from the consumed portion of content that an alternate mechanism for consuming content from the Web site is available, the alternate mechanism providing a corresponding alternate user experience for consuming content from the Web site; indicating that the alternate mechanism for consuming content from the Web site is available; receiving user input indicating a desire to use the alternate mechanism for consuming content from the Web site; configuring the computer system to use the alternate mechanism for consuming content from the Web site; and using the alternate mechanism to consume a second portion of content from the Web site to provide the corresponding alternate user experience to a user.
 17. The computer system as recited in claim 16, wherein the consuming a portion of content from the Web site comprises consuming an HTML document, the HTML document including a header and a body, the header containing links to the one or more alternate applications.
 18. The computer system as recited in claim 16, wherein determining from the consumed portion of content that an alternate mechanism for consuming content from the Web site is available comprises determining that links to the one or more alternate portions of content are contained in an HTML header.
 19. The computer system as recited in claim 18, wherein determining that links to the one or more alternate portions of content are contained in an HTML header comprises determining that URLs are contained in the HTML header.
 20. The computer system as recited in claim 16, wherein indicating that alternate mechanism for consuming content from the Web site is available comprises lighting up a user-interface control displayed at the computer system. 